Програмування задач лінійної структури. Обчислення виразів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
Комп'ютерна інженерія
Кафедра:
ЕОМ

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Засоби системного програмування
Група:
КІ 2
Варіант:
2 11

Частина тексту файла

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторної роботи №4 З дисципліни: «Засоби системного програмування» На тему: «Програмування задач лінійної структури. Обчислення виразів.» Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд над даними різного розміру. ЗАВДАННЯ: Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу і зберігає результат в пам’яті. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу; К – константа, довжина якої визначається значенням(згідно варіанту). Для її опису слід використати директиву EQU. За допомогою Debug, відслідкувати правильність виконання програми (продемонструвати результати проміжних та кінцевих обчислень). Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. Дати відповідь на контрольні запитання. ВАРІАНТ ЗАВДАННЯ: № Вираз K  2 X=A4/B2+C3-D1*E1-K 202  Лістинг програми: DOSSEG .MODEL SMALL .STACK 100h .DATA K EQU 202h A dd 10000 ; оголошуємо потрібні нам змінні B dw 10 C dw 01,00 D db 10 E db 12 Temp1 dw 00h,00h ; змінні для проміжних результатів Temp2 dw 00h,00h X dw 00h,00h ; змінна для кінцевого результату ;X=A4/B2+C3-D1*E1-K .CODE go: mov ax,@data mov ds,ax ;Temp1 <- A4/B2 ; в цьому блоці виконуємо операцію ділення mov ax,word ptr A+2 ; переміщуємо старшу частину змінної А в регістр ах mov bx,1 ; переміщуємо 1 в регістр bx mul bx ; робимо множення на 1 div B ; виконуємо ділення mov Temp1+2,ax ; записуємо частку старшої частини в Temp1 зі зміщенням на 2 байти mov ax,word ptr A ; переміщуємо молодшу частину змінної А у регістр ах div B ; виконуємо ділення mov Temp1,ax ; записуємо частку в Temp1 ;Temp2 <- D1*E1 ; в цьому блоці виконуємо операцію множення mov ax,0 ; онулюємо регістр ах mov ax,word ptr D ; переносимо значення змінної D в регістр ax mul E ; виконуємо множення mov Temp2,ax ; молодший результат множення записуємо в Temp2 mov Temp2+2,dx ; старший результат множення записуємо в Temp2 зі зміщення у 2 байти ;Temp1 + C3 - Temp2 – K ; в цьому блоці виконуємо операцію додавання та віднімання з використанням ; проміжних результатів та змінних mov ax,0 ; онулюємо регістр ах mov ax, word ptr C ; переносимо значення зміноої С в регістр ах add ax,Temp1 ; виконуємо додавання adc dx,Temp1+2 ; виконуємо додавання з врахуванням переносу sub ax,Temp2 ; виконуємо віднімання sbb dx,0 ; виконуємо віднімання з запозиченням add ax,K ; виконуємо додавання mov X,ax ; переміщаємо молодшу частину результату з регістру ах у змінну Х mov X+2,dx ; переміщаємо старшу частину результату з регістру dх у змінну Х зі зміщенням на 2 байти int 21h ; переривання end go Висновок: я навчився виконувати операції над цілими без знаковими даними. Використовувати стандартні функції для виконання цих операцій.
Антиботан аватар за замовчуванням

30.04.2014 21:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини